Các mẫu hình định hướng đối tượng con Lập_trình_hướng_đối_tượng

Có nhiều phong cách lập trình hướng đối tượng. Sự khác nhau giữa các phong cách này là tùy theo việc các ngôn ngữ lập trình chú trọng vào khía cạnh nào của sự thuận lợi của định hướng đối tượng và vào việc kết hợp các cấu trúc trong các phương cách khác nhau.

OOP với các ngôn ngữ cấu trúc

Trong các ngôn ngữ cấu trúc, OOP thường xuất hiện như là một dạng mà ở đó các kiểu dữ liệu được mở rộng để hành xử giống như là một kiểu của một đối tượng trong OOP, hoàn toàn tương tự cho một kiểu dữ liệu trừu tượng với sự mở rộng như là sự kế thừa. Mỗi phương pháp thực ra là một chương trình con, một cách cú pháp, giới hạn nội trong một lớp.

Các mô hình nguyên mẫu cơ bản

Khác với cách sử dụng lớp, nguyên mẫu là một mô hình khác ít được biết đến hơn, nó có ý nghĩa đạt tới việc chia sẻ ứng xử theo định hướng đối tượng. Sau khi đối tượng được định nghĩa, một đối tượng khác tương tự sẽ được định nghĩa từ đối tượng ban đầu. Ngôn ngữ nguyên mẫu cơ bản được biết đến nhiều nhất là JavaScript mà đây là một sự thiết lập của ECMAScript. Self, một ngôn ngữ lập trình được phát triển bởi Sun Microsystems cũng là một ví dụ của ngôn ngữ dùng nguyên mẫu cho việc chia sẻ ứng xử chứ không dùng sự phân lớp. NewtonScript, Act1, IoDelegation là các ví dụ khác. Đặc biệt, HybridExemplars sử dụng cả hai mô hình nguyên mẫu và phân lớp. Trong các hệ thống nguyên mẫu, các đối tượng tự chúng là các khuôn thức (template), trong khi các hệ thống phân lớp dùng các lớp như là các khuôn thức cho các đối tượng.

Các tiếp cận kiểu phân lớp thì chiếm đa số trong OOP mà nhiều người sẽ định nghĩa các đối tượng như là có tính chất đóng mà việc chia sẻ dữ liệu xảy ra bởi sự phân lớp và bởi tính kế thừa. Mặc dù vậy, khái niệm tổng quát hơn "chia sẻ ứng xử" được công nhận như là các kỹ thuật thay thế (như trường hợp nguyên mẫu).

(Xem thêm Lập trình nguyên mẫu cơ bản)

Mô hình đối tượng cơ bản

Lập trình hướng đối tượng cơ bản là trung tâm về việc tạo thành của các đối tượng và các tương tác của chúng, nhưng có thể sẽ thiếu đi một số chức năng quan trọng của mẫu hình định hướng đối tượng lớp cơ bản như là tính kế thừa. Những hệ thống đối tượng cơ bản như vậy thường không được xem như là định hướng đối tượng vì

  1. đổi tính kế thừa
một cách điển hình là một yếu tố cốt lõi của OOP.
Ví dụ của trường hợp này là ngôn ngữ Visual Basic với các phiên bản 6.0 hay nhỏ hơn.

Tài liệu tham khảo

WikiPedia: Lập_trình_hướng_đối_tượng http://userpages.aug.com/frodo/oopstruc.html http://c2.com/cgi/wiki?ArgumentsAgainstOop http://www.devx.com/opinion/Article/26776 http://dreamsongs.com/ObjectsHaveFailedNarrative.h... http://www.eventhelix.com/RealtimeMantra/Object_Or... http://www.geocities.com/tablizer/oopbad.htm http://www.objectfaq.com/oofaq2/ http://www.oopic.com/pgchap6.htm http://www.paulgraham.com/noop.html http://www.eecs.utoledo.edu/~ledgard/oop/page2b.ht...